with v8.Class_Primitive, v8.Class_Value;
package v8.Class_Number is
   type Number (<>) is new v8.Class_Primitive.Primitive with private;
   type Pointer is access all Number;
   -- A JavaScript number value (ECMA-262, 4.3.20)

   function Value (this : Number) return double;

   function Create  (value : double) return Pointer;
   -- return Local<Number>

   function Cast is new Ada.Unchecked_Conversion (v8.Class_Value.Pointer, Pointer);
   -- Convert Value to Number

private
   type Number is new v8.Class_Primitive.Primitive with null record;

   pragma Import (CPP, Value, "_ZNK2v86Number5ValueEv");
   pragma Import (CPP, Create, "_ZN2v86Number3NewEd");
end v8.Class_Number;
